#ifndef  FIGHTER_YANN_HPP
# define FIGHTER_YANN_HPP

# include "player.hpp"

class FighterYann : public Player
{
public:
    enum Cooldowns
    {
	CooldownSeduction = 20,
	CooldownBarman    = 20,
	CooldownComics    = 30,
	CooldownEliot     = 30
    };

    FighterYann(Shiny::Applejack::World& w, Shiny::Applejack::Body& b, Shiny::Applejack::View*);

    void Victory(bool);
    void GetKicked(int damage, const Attack::Effects&);
    void SpellFirst(sf::Event);
    void SpellSecond(sf::Event);
    void SpellThird(sf::Event);
    void SpellUltimate(sf::Event);
    void Run(void);
    void DisplaySpells();

    void InterruptChannelling();
    void EndSeduction();
    void EndAnimationSeduction(unsigned int);

    void AnimationInterupted();

private:
    void SeductionContact(Shiny::Applejack::World::RayCastCollisions);
    Shiny::Applejack::World::RayCastObserver* seductionRaycast;

    bool      _isSeducting;

    Observatory::ObserverId _animationSeductionObserver;

    sf::Clock _cooldownSeduction;
    sf::Clock _cooldownBarman;
    sf::Clock _cooldownComics;
    sf::Clock _cooldownEliot;

    Shiny::Sound _soundVictory;
};

#endif
